// 引入mongoose库
const mongoose = require('mongoose');

// 定义笔记的数据库模式/结构
const noteSchema = new mongoose.Schema(
  {
    content: {
      type: String,
      required: true
    },
    author: {
      type: mongoose.Schema.Types.ObjectId,
      ref: "User",    // 表示可以查询关联User数据表
      required: true
    },
    favoriteCount: {
      type: Number,
      default: 0
    },
    favoriteBy: [
      {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'User'   // 表示可以查询关联User数据表
      }
    ]
    // 因为已经使用插件进行处理了， 再去定义会报错
    /* createdAt: {
      type: String,
      required: false
    },
    updatedAt: {
      type: String,
      required: false
    } */
  },
  {
    // 添加Date类型的createdAt和updatedAt字段
    timestamps: true
  }
);

// 通过模式定义 Note 模型
const Note = mongoose.model('Note', noteSchema);

// 导出模型
module.exports = Note;